interface ReadonlyProps {
  name: string
  age: number
  gender: string
}

// 所有属性变为只读。
const objReadonly: Readonly<ReadonlyProps> = {
  name: '张三',
  age: 18,
  gender: '男'
}
// objReadonly.name = '李四' // error

// 原理
type MadeReadonly<T> = {
  readonly [P in keyof T]: T[P]
}
